package com.ruoyi.project.module.groupProperty.service;

import com.ruoyi.project.module.groupProperty.domain.GroupProperty;
import com.ruoyi.project.module.remark.domain.Remark;

import java.util.List;
import java.util.Map;

/**
 * 配置组属性 服务层
 * 
 * @author ruoyi
 * @date 2018-11-10
 */
public interface IGroupPropertyService 
{
	/**
     * 查询配置组属性信息
     * 
     * @param configGroupPropertyId 配置组属性ID
     * @return 配置组属性信息
     */
	public GroupProperty selectGroupPropertyById(Long configGroupPropertyId);
	
	/**
     * 查询配置组属性列表
     * 
     * @param groupProperty 配置组属性信息
     * @return 配置组属性集合
     */
	public List<GroupProperty> selectGroupPropertyList(GroupProperty groupProperty);
	
	/**
     * 新增配置组属性
     * 
     * @param groupProperty 配置组属性信息
     * @return 结果
     */
	public int insertGroupProperty(GroupProperty groupProperty);
	
	/**
     * 修改配置组属性
     * 
     * @param groupProperty 配置组属性信息
     * @return 结果
     */
	public int updateGroupProperty(GroupProperty groupProperty);
		
	/**
     * 删除配置组属性信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	int deleteGroupPropertyByIds(Long configGroupId, String ids);


	/**
	 *
	 * @param configGroupId
	 * @param parentId
	 * @return
	 */
	int maxOrderNum(Long configGroupId,Long parentId);

	boolean hasChilds(Integer parentId);

	void copy(Long sourceConfigGroupId, Long sourceParentId, Long targetConfigGroupId, Long targetParentId);

	/**
	 * 选择配置属性
	 *
	 * @param groupProperty 配置组属性信息
	 * @return 配置组属性集合
	 */
	public List<GroupProperty> lookupGroupPropertyList(GroupProperty groupProperty);

	int importHierarchicalStructure(Map map,Long targetConfigGroupId, Long targetParentId);


	int addCompleteRemark(GroupProperty groupProperty);
}
